//im服务在通信过程中传递的参数

package websocket

type FrameType uint8

const (
	FrameData FrameType = 0x0
	FramePing FrameType = 0x1
	FrameErr  FrameType = 0x9

	//FrameHeaders      FrameType =
	//FramePriority     FrameType =
	//FrameRSTStream    FrameType =
	//FrameSettings     FrameType =
	//FramePushPromise  FrameType =
	//FrameGoAway       FrameType =
	//FrameWindowUpdate FrameType =
	//FrameContinuation FrameType =
)

type Message struct {
	FrameType `json:"frameType"` //消息类型
	Method    string             `json:"method"` //具体要处理哪一个方法
	FormId    string             `json:"formId"` //消息请求的来源,在服务端给客户端发送消息时使用
	Data      interface{}        `json:"data"`   //不确定要传什么类型，定义成interface
}

func NewMessage(formId string, data interface{}) *Message {
	return &Message{
		FrameType: FrameData, //默认
		FormId:    formId,
		Data:      data,
	}
}

func NewErrMessage(err error) *Message {
	return &Message{
		FrameType: FrameErr,
		Data:      err.Error(),
	}
}
